void init_prim16int() {
    int code_segment = INT_ROUTINE_CS;
    for(int i = 0; i < 32; i++) {
        int_routines[i].cs = code_segment;
        copy_16bit_code(int_routines[i].start, int_routines[i].end, code_segment);
        code_segment += (int_routines[i].end - int_routines[i].start);
    }
}

general_registers do_16int(int number, general_registers input) {
    general_registers send;
    if(number < 32) {
        isr_stack result = go_v86(int_routines[number].cs, 0x0000, input);
        send.eax = result.eax;
        send.ebx = result.ebx;
        send.ecx = result.ecx;
        send.edx = result.edx;
    }
    return send;
}
